<?php
global $strGPath;
require_once("$strGPath/config_otro.ini.php");

require_once(BaseConfig::LoadClass('sepomex.class.php'                  ));
require_once(BaseConfig::LoadClass('datos_cotizacion_qualitas.class.php'));
require_once(BaseConfig::LoadClass('cotizacion_qualitas.class.php'      ));
require_once(BaseConfig::LoadClass('cotizacion_ana.class.php'           ));
require_once(BaseConfig::LoadClass('cotizador_ana.class.php'            ));

class PaginaCotQual {
  static function GenerarCotizador() {
    
    switch(Variables::GetOption('paso')) {
      case '9':
        $oPoliza = new Poliza();
        return $oPoliza->MandarWebService(Variables::GetOption('datos'));
        break;
      
      case '8':
        return PaginaCotQual::MostrarResultadoPolizaAna(Variables::GetOption('id'));
        break;
      
      case '7':
        return PaginaCotQual::CrearPolizaAna();
        break;
      
      case '6':
        return PaginaCotQual::MostrarResultadoPolizaQualitas(Variables::GetOption('id'));
        break;
      
      case '5':
        PaginaCotQual::CrearPolizaQua();
        break;
      
      case '4':
        if(Variables::GetOption('aseg') == "ana") {
          return PaginaCotQual::TemplateDatosPolizaAna(Variables::GetOption('id'), Variables::GetOption('tipo'));
        } else if(Variables::GetOption('aseg') == "aig") {
          // Primero buscar el ID que se necesita
          $oConecta = new Conecta();
          $intIdAnt = Variables::GetOption('id');
          $strConsulta = "SELECT id_dato_cotizacion FROM datos_cotizacion WHERE id_cotizacion_qualitas = $intIdAnt";
          $oConecta->Consulta($strConsulta);
          $_GET["id"] = $oConecta->Field('id_dato_cotizacion');
          
          // Ahora poner el tipo de poliza a buscar
          switch(Variables::GetOption('tipo')) {
            case 1: $_GET["tipo"] = "Gold"    ; break;
            case 2: $_GET["tipo"] = "Amplio"  ; break;
            case 3: $_GET["tipo"] = "Limitado"; break;
            case 4: $_GET["tipo"] = "Basico"  ; break;
          }
          
          Template::AgregarArchivoExtra_S("cotizador.js"                         , "js");
          Template::AgregarArchivoExtra_S("jquery-plugins/jquery.validate.min.js", "js");
          Template::AgregarArchivoExtra_S("jquery-plugins/messages_es.js"        , "js");
          
          $oPoliza = new Poliza();
          return $oPoliza->Mostrar($intIdAnt);
        } else {
          return PaginaCotQual::TemplateDatosPoliza(Variables::GetOption('id'), Variables::GetOption('tipo'));
        }
        
      case '3':
        return PaginaCotQual::SeleccionCotizacion(Variables::GetOption('id'));
      
      case '2':
        return PaginaCotQual::GuardarDatosCot();
      
      default:
        if(Variables::GetOption("salida")) {
          unset($_SESSION["datos"]["id_venddor" ]);
          unset($_SESSION["datos"]["nom_venddor"]);
          unset($_SESSION["datos"]["pro_venddor"]);
          unset($_SESSION["datos"]["suc_venddor"]);
          
          header("Location: index.php?option=cotizador_qualitas");
          die;
        } else if($_SESSION["datos"]["id_venddor"]) {
          return PaginaCotQual::ObtenerEntradaDatos(Variables::GetOption('id'));
        } else {
          if(Variables::GetOption('usuario') && Variables::GetOption('password')) {
            $oConecta = new Conecta();
            $strConsulta = "SELECT * FROM vendedores WHERE nombre = '" . Variables::GetOption('usuario') . "' AND password = '" . Variables::GetOption('password') . "'";
            $oConecta->Consulta($strConsulta);
            if($oConecta->EOF) {
              
            } else {
              $_SESSION["datos"]["id_venddor" ] = $oConecta->Field('id_vendedor'    );
              $_SESSION["datos"]["nom_venddor"] = $oConecta->Field('nombre_completo');
              $_SESSION["datos"]["pro_venddor"] = $oConecta->Field('proyecto'       );
              $_SESSION["datos"]["suc_venddor"] = $oConecta->Field('sucursal'       );
            }
            header("Location: index.php?option=cotizador_qualitas");
            die;
          } else {
            $oTemplate = new Template();
            eval('$strRes = "' . $oTemplate->Get("entrada_2.tpl.php") . '";');
            return $strRes;
          }
        }
    }
  }
  
  static function MostrarResultadoPolizaQualitas($intId) {
    $oDatosCon = new DatosCotizacionQualitas($intId);
    
    $arrPiezas = explode("|", $oDatosCon->strUrlPDFPoliza);
    
    if(count($arrPiezas) == 1) {
      return "<h1>{$arrPiezas[0]}</h1>";
    } else {
      $arrInfoPoliza = unserialize($oDatosCon->txtArrInfoPoliza);
      $strPag  = "";
      $strPag .= "<table class='TablaReportes'>";
      
      $strPag .= "<tr><th colspan='2'>Poliza completa</th></tr>";
      
      $strPag .= "<tr " . Variables::AlternarConClase() . ">";
      $strPag .= "<td>Poliza:</td>";
      $strPag .= "<td>{$arrInfoPoliza["datos"]["no_poliza"]}</td>";
      $strPag .= "</tr>";
      
      $strPag .= "<tr " . Variables::AlternarConClase() . ">";
      $strPag .= "<td>Asegurado:</td>";
      $strPag .= "<td>{$arrInfoPoliza["datos"]["no_asegurado"]}</td>";
      $strPag .= "</tr>";
      
      $strPag .= "<tr " . Variables::AlternarConClase() . ">";
      $strPag .= "<td>Documento 1:</td>";
      $strPag .= "<td><a href='{$arrPiezas[0]}'>Aqui</a></td>";
      $strPag .= "</tr>";
      
      $strPag .= "<tr " . Variables::AlternarConClase() . ">";
      $strPag .= "<td>Liga Avisos de cobro:</td>";
      $strPag .= "<td><a href='{$arrPiezas[1]}'>Aqui</a></td>";
      $strPag .= "</tr>";
      
      $strPag .= "<tr " . Variables::AlternarConClase() . ">";
      $strPag .= "<td>Poliza:</td>";
      $strPag .= "<td><a href='{$arrPiezas[2]}'>Aqui</a></td>";
      $strPag .= "</tr>";
      
      $strPag .= "</table>";
      
      return $strPag;
    }
  }
  
  static function CrearPolizaAna() {
    $oDatosCot   = new DatosCotizacionQualitas(Variables::GetOption('id'));
    $oCotizacion = CotizadorAna::PolizaDesdeObjetoQualitas($oDatosCot, Variables::GetOption('tipo'));
    if(substr(trim($oCotizacion), 0, 1) != "<") {
      return "<h1>$oCotizacion</h1>";
    } else {
      header("Location: index.php?option=cotizador_qualitas&paso=8&id=" . Variables::GetOption('id'));
      die;
    }
  }
  
  static function MostrarResultadoPolizaAna($intId) {
    $oDatosCon = new DatosCotizacionQualitas($intId);
    
    $arrPiezas = unserialize($oDatosCon->txtArrInfoImpresion);
    
    if($arrPiezas["error"] != "") {
      return "<h1>{$arrPiezas["error"]}</h1>";
    } else {
      $strPag  = "";
      $strPag .= "<table class='TablaReportes'>";
      
      $strPag .= "<tr><th colspan='2'>Poliza completa</th></tr>";
      
      $strPag .= "<tr " . Variables::AlternarConClase() . ">";
      $strPag .= "<td>Poliza:</td>";
      $strPag .= "<td>{$arrPiezas["datos"]["id"]}</td>";
      $strPag .= "</tr>";
      
      $strPag .= "<tr " . Variables::AlternarConClase() . ">";
      $strPag .= "<td>Endoso:</td>";
      $strPag .= "<td>{$arrPiezas["datos"]["endoso"]}</td>";
      $strPag .= "</tr>";
      
      $strPag .= "<tr " . Variables::AlternarConClase() . ">";
      $strPag .= "<td>Inciso:</td>";
      $strPag .= "<td>{$arrPiezas["datos"]["inciso"]}</td>";
      $strPag .= "</tr>";
      
      $strPag .= "<tr " . Variables::AlternarConClase() . ">";
      $strPag .= "<td>Poliza:</td>";
      $strPag .= "<td><a href='{$arrPiezas["datos"]["link"]}'>Aqui</a></td>";
      $strPag .= "</tr>";
      
      $strPag .= "</table>";
      
      return $strPag;
    }
  }
  
  static function CrearPolizaQua() {
    $oDatosCot   = new DatosCotizacionQualitas(Variables::GetOption('id'));
    $oCotizacion = CotizadorQualitas::PolizaDesdeObjetoQualitas($oDatosCot, Variables::GetOption('tipo'));
    header("Location: index.php?option=cotizador_qualitas&paso=6&id=" . Variables::GetOption('id'));
    die;
  }
  
  static function TemplateDatosPolizaAna($intIdDatoCotizacion, $intTipo) {
    $arrTiposCot[1] = "Amplia"    ;
    $arrTiposCot[2] = "Lim-Plus"  ;
    $arrTiposCot[3] = "Limitada";
    $arrTiposCot[4] = "Resp. Civil";
    
    $oConecta   = new Conecta ();
    $oTemplate  = new Template();
    $oDatoCot   = new DatosCotizacionQualitas($intIdDatoCotizacion);
    $oCotQua    = new CotizacionQualitas();
    
    $strConsulta = "SELECT * FROM cotizaciones_ana WHERE id_dato_cotizacion = $intIdDatoCotizacion AND tipo = $intTipo";
    $oConecta->Consulta($strConsulta);
    $oCotQua->LlenarObjeto($oConecta->GetColumn());
    
    $strNoCotizacion = $oCotQua->strNoCotizacion;
    $strPaqEmitir    = $arrTiposCot[$intTipo];
    
    $strNombre       = "{$oDatoCot->strAPaterno} {$oDatoCot->strAMaterno} {$oDatoCot->strNombre}";
    $strEstado       = Sepomex::ObtenerNombreEstado($oDatoCot->intEstado);
    $strMunicipio    = Sepomex::ObtenerNombreMunicipio($oDatoCot->intEstado, $oDatoCot->intMunicipio);
    $strColonia      = Sepomex::ObtenerNombreColonia($oDatoCot->intEstado, $oDatoCot->intMunicipio, $oDatoCot->intColonia);
    $strCP           = $oDatoCot->intCP;
    
    $strFechaNac     = $oDatoCot->strFechaNac    ;
    $strFechaEmi     = $oDatoCot->dteFechaEntrada;
    $strVigDesde     = $oDatoCot->dteFechaEntrada;
    $strVigHasta     = date("Y-m-d", mktime(0, 0, 0, date("m", strtotime($oDatoCot->dteFechaEntrada)) + $oDatoCot->intVigencia, date("d", strtotime($oDatoCot->dteFechaEntrada)), date("Y", strtotime($oDatoCot->dteFechaEntrada))));
    
    $strAMIS         = $oDatoCot->strAMIS;
    $strMarca        = $oDatoCot->strMarca;
    $intAnioModelo   = $oDatoCot->intMarcaAnio;
    $strDescModelo   = Variables::GetValueByTableMultipleIndex("cat_modelos_ana", "amis,modelo", "descripcion", $oDatoCot->strAMIS . "," . $oDatoCot->intMarcaAnio);
    
    $strSelectColor  = Variables::GetSelectByTable("cat_colores_ana", "id_color", "nombre", "", "datos[vehi][color]");
    $strSelectBanco  = Variables::GetSelectByTable("cat_bancos_ana" , "id_banco", "nombre", "", "datos[pago][banco]");
    $strSelectEnvio  = Variables::GetSelectByArray(array("N" => "No", "S" => "Si"), "", "datos[pago][envio]");
    $strSelectFiscal = Variables::GetSelectByArray(array("N" => "No", "S" => "Si"), "", "datos[pago][fiscal]");
    
    if($oDatoCot->strFormaPago == "TARJETA") {
      eval('$strRes = "' . $oTemplate->Get('poliza_entrada_ana_tarjeta.tpl.php') . '";');
    } else {
      eval('$strRes = "' . $oTemplate->Get('poliza_entrada_ana.tpl.php') . '";');
    }
    return $strRes;
  }
  
  static function TemplateDatosPoliza($intIdDatoCotizacion, $intTipo) {
    $arrTiposCot[1] = "Amplia"     ;
    $arrTiposCot[2] = "Plus"       ;
    $arrTiposCot[3] = "Limitada"   ;
    $arrTiposCot[4] = "Resp. Civil";
    
    $oConecta   = new Conecta ();
    $oTemplate  = new Template();
    $oDatoCot   = new DatosCotizacionQualitas($intIdDatoCotizacion);
    $oCotQua    = new CotizacionQualitas();
    
    $strConsulta = "SELECT * FROM cotizaciones_qualitas WHERE id_dato_cotizacion = $intIdDatoCotizacion AND tipo = $intTipo";
    $oConecta->Consulta($strConsulta);
    
    $oCotQua->LlenarObjeto($oConecta->GetColumn());
    
    $strNoCotizacion = $oCotQua->strNoCotizacion;
    $strPaqEmitir    = $arrTiposCot[$intTipo];
    
    $strNombre       = "{$oDatoCot->strAPaterno} {$oDatoCot->strAMaterno} {$oDatoCot->strNombre}";
    $strEstado       = Sepomex::ObtenerNombreEstado($oDatoCot->intEstado);
    $strMunicipio    = Sepomex::ObtenerNombreMunicipio($oDatoCot->intEstado, $oDatoCot->intMunicipio);
    $strColonia      = Sepomex::ObtenerNombreColonia($oDatoCot->intEstado, $oDatoCot->intMunicipio, $oDatoCot->intColonia);
    $strCP           = $oDatoCot->intCP;
    
    $strFechaEmi     = $oDatoCot->dteFechaEntrada;
    $strVigDesde     = $oDatoCot->dteFechaEntrada;
    $strVigHasta     = date("Y-m-d", mktime(0, 0, 0, date("m", strtotime($oDatoCot->dteFechaEntrada)) + $oDatoCot->intVigencia, date("d", strtotime($oDatoCot->dteFechaEntrada)), date("Y", strtotime($oDatoCot->dteFechaEntrada))));
    
    $strFechaNac     = $oDatoCot->strFechaNac;
    $strAMIS         = $oDatoCot->strAMIS;
    $strMarca        = $oDatoCot->strMarca;
    $intAnioModelo   = $oDatoCot->intMarcaAnio;
    $strDescModelo   = Variables::GetValueByTable("cat_modelos_antartica", "id_modelo", "version", $oDatoCot->strAMIS);
    
    eval('$strRes = "' . $oTemplate->Get('poliza_entrada_qualitas.tpl.php') . '";');
    return $strRes;
  }
  
  static function SeleccionCotizacion($intIdDatoCotizacion) {
    $oTemplate = new Template();
    global $strGUrl;
    
    $oConecta = new Conecta();
    $strConsulta = "SELECT * FROM datos_cotizacion_qualitas WHERE id_dato_cotizacion = $intIdDatoCotizacion";
    $oConecta->Consulta($strConsulta);
    $arrDatosCotizacion = $oConecta->GetColumn();
    
    // Por default se muestran y se calculan todos
    $strCalcularQualitas = 1;    $strMostrarQualitas  = "";
    $strCalcularAna      = 1;    $strMostrarAna       = "";
    $strCalcularAig      = 1;    $strMostrarAig       = "";
    
    if($arrDatosCotizacion['vigencia'] != "12") {
      // Quitar las aseguradoras que no participan en multianual
      $strCalcularAig = 0;
      $strMostrarAig  = "style='display:none;'";
    }
    
    // Checar quien si tiene el modelo a meter
    $strConsulta = "SELECT * FROM cat_modelos_antartica WHERE id_modelo = {$arrDatosCotizacion["amis"]}";
    $oConecta->Consulta($strConsulta);
    
    // Llenamos la marca, modelo y version para presentarlo
    $strMarca   = $oConecta->Field('marca'  );
    $strModelo  = $oConecta->Field('modelo' );
    $strVersion = $oConecta->Field('version');
    
    // Vemos cuales si pueden ser mostrados y cuales no
    if(!$oConecta->Field('cve_qualitas')) {
      $strCalcularQualitas = 0;
      $strMostrarQualitas  = "style='display:none;'";
    }
    if(!$oConecta->Field('cve_ana')) {
      $strCalcularAna = 0;
      $strMostrarAna  = "style='display:none;'";
    }
    if(!$oConecta->Field('cve_aig')) {
      $strCalcularAig = 0;
      $strMostrarAig  = "style='display:none;'";
    }
    
//    $strCalcularQualitas = 0;    $strMostrarQualitas  = "";
//    $strCalcularAna      = 0;    $strMostrarAna       = "";
//    $strCalcularAig      = 0;    $strMostrarAig       = "";
    
    eval('$strPagina = "' . $oTemplate->Get('seleccion_cot_qualitas.tpl.php') . '";');
    return $strPagina;
  }
  
  static function ObtenerEntradaDatos($intIdDato = 0) {
    $oTemplate = new Template();
    $oConfig   = new Config();
    
    $oDato = new DatosCotizacionQualitas($intIdDato);
    
    $strNombreVen = $_SESSION["datos"]["nom_venddor"];
    $strProyVen   = $_SESSION["datos"]["pro_venddor"];
    $strSucVen    = $_SESSION["datos"]["suc_venddor"];
    
    $strSelectNoSalvamento = ($intIdDato ? "SELECTED" : "");
    
    $apaterno = $oDato->strAPaterno;
    $amaterno = $oDato->strAMaterno;
    $nombre   = $oDato->strNombre  ;
    $cp       = $oDato->intCP      ;
    $amis     = $oDato->strAMIS    ;
    
    $strSelectEstado  = Sepomex::ObtenerSelectEstados   ($oDato->intEstado);
    $strMunicipio     = Sepomex::ObtenerSelectMunicipios($oDato->intEstado, $oDato->intMunicipio);
    $strSelectColonia = Sepomex::ObtenerSelectColonias  ($oDato->intEstado, $oDato->intMunicipio, $oDato->intColonia);
    
    global $strGUsarTablaMarcasANA;
    global $strGUsarTablaMarcasASD;
    if($strGUsarTablaMarcasANA) {
      $strSelectMarca   = Variables::GetSelectByTable("cat_modelos_ana"      , "DISTINCT(marca)" , "marca"       , $oDato->strMarca    , "", "", "ORDER BY marca ASC");
      $strSelectAnioMod = Variables::GetSelectByTable("cat_modelos_ana"      , "DISTINCT(modelo)", "modelo"      , $oDato->intMarcaAnio, "", "", "WHERE marca = '{$oDato->strMarca}' ORDER BY modelo DESC");
      $strSelectTipo    = Variables::GetSelectByTable("cat_modelos_ana"      , "amis"            , "descripcion" , $oDato->strAMIS     , "", "", "WHERE marca = '{$oDato->strMarca}' AND modelo = '{$oDato->intMarcaAnio}' ORDER BY descripcion ASC");
    } else if($strGUsarTablaMarcasASD) {
      $strSelectMarca   = Variables::GetSelectByTable("cat_modelos_antartica", "DISTINCT(marca)" , "marca"       , $oDato->strMarca    , "", "", "ORDER BY marca ASC");
      $strSelectAnioMod = Variables::GetSelectByTable("cat_modelos_antartica", "DISTINCT(modelo)", "modelo"      , $oDato->intMarcaAnio, "", "", "WHERE marca = '{$oDato->strMarca}' ORDER BY modelo DESC");
      $strSelectTipo    = Variables::GetSelectByTable("cat_modelos_antartica", "id_modelo"       , "version"     , $oDato->strAMIS     , "", "", "WHERE marca = '{$oDato->strMarca}' AND modelo = '{$oDato->intMarcaAnio}' ORDER BY version ASC");
    } else {
      $strSelectMarca   = Variables::GetSelectByTable("cat_modelos_qualitas" , "DISTINCT(marca)" , "nombre_marca", $oDato->strMarca    , "", "", "ORDER BY marca ASC");
      $strSelectAnioMod = Variables::GetSelectByTable("cat_modelos_qualitas" , "DISTINCT(modelo)", "modelo"      , $oDato->intMarcaAnio, "", "", "WHERE marca = '{$oDato->strMarca}' ORDER BY modelo DESC");
      $strSelectTipo    = Variables::GetSelectByTable("cat_modelos_qualitas" , "amis"            , "version"     , $oDato->strAMIS     , "", "", "WHERE marca = '{$oDato->strMarca}' AND modelo = '{$oDato->intMarcaAnio}' ORDER BY version ASC");
    }
    
    if(!$oDato->intVigencia) $oDato->intVigencia = 12;
    
    $arrMeses      = array("12" => "1 a&ntilde;o", "18" => "18 meses", "24" => "2 a&ntilde;os", "36" => "3 a&ntilde;os");
    $arrTiposPago  = array("CREDITO" => "Credito" , "CONTADO" => "Contado");
    $arrFormasPago = array("EFECTIVO" => "Efectivo", "TARJETA" => "Tarjeta de Credito", "TRANSFERENCIA" => "Transferencia");
    
    $strJSFormasPago1 = '<option value="EFECTIVO">Efectivo</option>';
    $strJSDuracion1   = Variables::GetSelectByArray($arrMeses     , $oDato->intVigencia );
    
    $strJSFormasPago2 = Variables::GetSelectByArray($arrFormasPago, $oDato->strFormaPago);
    $strJSDuracion2   = '<option value="12">1 a&ntilde;o</option>';
    
    $strSelectTiposPago  = Variables::GetSelectByArray($arrTiposPago , $oDato->strTipoPago , "datos[tipo_pago]", "id='tipo_pago_sel' onchange='CambioTipoPago()'");
    if($oDato->strTipoPago == "CONTADO") {
      $strSelectFormasPago = '<select name="datos[forma_pago]" id="forma_pago_sel">' . $strJSFormasPago2 . '</select>';
      $strSelectDuracion   = '<select name="datos[vigencia]" id="vigencia_sel">' . $strJSDuracion2 . '</select>';
    } else {
      $strSelectFormasPago = '<select name="datos[forma_pago]" id="forma_pago_sel">' . $strJSFormasPago1 . '</select>';
      $strSelectDuracion   = '<select name="datos[vigencia]" id="vigencia_sel">' . $strJSDuracion1 . '</select>';
    }
    
    $arrSexos = array(1 => "FEMENINO", 2 => "MASCULINO");
    $strSelectSexo = Variables::GetSelectByArray($arrSexos, $oDato->intIdSexo);
    
    $strFechaNac = $oDato->strFechaNac;
    
    Template::AgregarArchivoExtra_S("scripts_cotizador.js"                 , "js");
    if($oConfig->Get('templates_entrada', '0') == '1') {
      eval('$strPagina = "' . $oTemplate->Get('cotizador_entrada_qualitas_autocompara.tpl.php') . '";');
    } else {
      eval('$strPagina = "' . $oTemplate->Get('cotizador_entrada_qualitas.tpl.php') . '";');
    }
    return $strPagina;
  }
  
  static function GuardarDatosCot() {
    $oDato = new DatosCotizacionQualitas();
    $oDato->LlenarObjeto(Variables::GetOption('datos'));
    $oDato->intIdVendedor   = $_SESSION["datos"]["id_venddor"];
    $oDato->dteFechaEntrada = date("Y-m-d");
    $oDato->GuardarObjeto(true, true);
    header("Location: index.php?option=cotizador_qualitas&paso=3&id=" . $oDato->intIdDatoCotizacion);
    die;
  }
}

?>